區域設置設置爲setlocale(LC_ALL, 'ru_RU.UTF-8')
在俄羅斯,小數點爲,
。使用區域設置小數點和類型轉換的奇怪行爲
我得到字符串輸入(例如,11,25
)。 當我強調它加倍$double = (double)$double;
我失去了精度。
setlocale(LC_ALL, 'ru_RU.UTF-8');
$input = '11,25';
var_dump((double)$input); //11
$linfo = localeconv();
$input = '11'.$linfo['decimal_point'].'25';
var_dump((double)$input); //11
$input = '11.25';
var_dump((double)$input); //11,25
因此,我可以看到只有語言環境效果的視圖。 這是否意味着我應該在運行十進制值之前始終使用str_replace(array(',','.'), '.', $input)
?