2020/12 3

0.3 - 0.1 == 0.2 ?

C# 언어로 부동소수점수 계산할 때 실수할 수 있는 경우이다. 반복문의 탈출 조건에 저런 것을 이용하다 자칫하면 무한 반복의 늪에 빠질 수 있다. 금액 계산의 경우에 정확한 계산이 요구되기 때문에 float 타입이니 double 타입 보다는 decimal 타입을 사용하는것이 더 바람직할 것이다. 정확한 소수점수 계산을 위해 decimal 타입을 사용한 다음 C# 소스의 실행 결과를 보자. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CalcDecimalConsoleApp { class Program { static void M..

프로그래밍/C# 2020.12.14

PHP 8 정식 릴리즈 출시 (2020년 11월 26일)

최근에 PHP 8 릴리즈가 발표되었다. 변한 것은 여러가지 있지만, 사소한 변화 한 가지만 소개한다. PHP 8에서는 부동소수점수 나눗셈 함수 fdiv($a, $b) 가 추가되었다. 기존의 나눗셈 $a / $b 는 나누는 수 $b 가 0일 경우 에외가 발생하지만, IEEE 754 의 권고에 따라 0으로 나누는 경우 나누어지는 수가 양수냐 움수냐 0이냐에 따라 나눈 결과가 각각 +INF, -INF, NAN 로 된다. PHP 7,xx 까지에는 fmod($a, $b) 함수와 intdiv($a, $b) 함수가 이미 있었는데. 여기에 보조를 맞추어 fdiv($a, $b) 가 PHP 8에 새롭게 추가되었다고 한다. intdiv() 와 대비되는 이름 floatdiv() 으=로 할까도 고려해보았지만, fmod() 와 ..

프로그래밍/PHP 2020.12.03