Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java,将任何语言环境的字符串转换为双精度_Java_Android - Fatal编程技术网

java,将任何语言环境的字符串转换为双精度

java,将任何语言环境的字符串转换为双精度,java,android,Java,Android,我知道已经有一个类似的问题了,但这个问题有点不同 假设我们有一个字符串,我们知道它可以转换为double,但我们对它的语言环境一无所知。可能它的语言环境是英语(以点为分隔符)或法语(以逗号为分隔符),或者其他 那么,如何将其转换为正确的双精度值呢?如果您想从“用户”(默认)区域设置解析一个数字,那么这可能会帮助您: double number = java.text.NumberFormat.getInstance().parse(stringNumber).doubleValue(); 我想

我知道已经有一个类似的问题了,但这个问题有点不同

假设我们有一个字符串,我们知道它可以转换为double,但我们对它的语言环境一无所知。可能它的语言环境是英语(以点为分隔符)或法语(以逗号为分隔符),或者其他


那么,如何将其转换为正确的双精度值呢?

如果您想从“用户”(默认)区域设置解析一个数字,那么这可能会帮助您:

double number = java.text.NumberFormat.getInstance().parse(stringNumber).doubleValue();

我想如果您想强制执行它,可以循环并调用NumberFormat.getInstance(),如图所示

如果您事先不知道语言环境,则无法执行。英语中的“100100”是法语中的1000倍。如果我们必须准确地获取双精度值,则您是对的。此方法在加拿大法语地区采用字符串值“0.001”到1.0