为什么Excel将小数点后两位以上的数字解析为整数?

为什么Excel将小数点后两位以上的数字解析为整数?,excel,csv,localization,decimal,Excel,Csv,Localization,Decimal,Excel使用Windows区域设置获取csv文件的列表分隔符和小数分隔符。我正在尝试在我们的应用程序中为法国和德国用户本地化一些csv报告。对于每个csv的法语和德语版本,我使用分号作为csv分隔符,逗号作为十进制分隔符 我已将本地Windows区域设置设置为使用分号和逗号作为小数分隔符。当我在Excel中打开下面的测试文件时,Excel会正确地解析带有2个或更少十进制字符的数字。。。基于我的区域设置。但是,小数点后3位或以上的数字被解析为整数。因此,字符串123000将被解析为123000(

Excel使用Windows区域设置获取csv文件的列表分隔符和小数分隔符。我正在尝试在我们的应用程序中为法国和德国用户本地化一些csv报告。对于每个csv的法语和德语版本,我使用分号作为csv分隔符,逗号作为十进制分隔符

我已将本地Windows区域设置设置为使用分号和逗号作为小数分隔符。当我在Excel中打开下面的测试文件时,Excel会正确地解析带有2个或更少十进制字符的数字。。。基于我的区域设置。但是,小数点后3位或以上的数字被解析为整数。因此,字符串123000将被解析为123000(十二万三千)

test.csv:

"Decimal Separator";"In Quotes";"Number"
"Period";"false";4.283333
"Period";"true";"4.283333"
"Period";"false";0.283333
"Period";"true";"0.283333"
"Comma";"false";4,283333
"Comma";"true";"4,283333"
"Comma";"false";0,283333
"Comma";"true";"0,283333"
"Period";"false";4.333
"Period";"true";"4.333"
"Period";"false";0.333
"Period";"true";"0.333"
"Comma";"false";4,333
"Comma";"true";"4,333"
"Comma";"false";0,333
"Comma";"true";"0,333"
"Period";"false";4.28
"Period";"true";"4.28"
"Period";"false";0.28
"Period";"true";"0.28"
"Comma";"false";4,28
"Comma";"true";"4,28"
"Comma";"false";0,28
"Comma";"true";"0,28"
"Period";"false";4.4
"Period";"true";"4.4"
"Period";"false";0.4
"Period";"true";"0.4"
"Comma";"false";4,4
"Comma";"true";"4,4"
"Comma";"false";0,4
"Comma";"true";"0,4"
"Period";"false";4
"Period";"true";"4"
"Period";"false";0
"Period";"true";"0"
"Comma";"false";4
"Comma";"true";"4"
"Comma";"false";0
"Comma";"true";"0"
"Period";"false";45623455454.283333
"Period";"true";"45623455454.283333"
"Period";"false";45623455450.283333
"Period";"true";"45623455450.283333"
"Comma";"false";45623455454,283333
"Comma";"true";"45623455454,283333"
"Comma";"false";45623455450,283333
"Comma";"true";"45623455450,283333"
"Period";"false";45623455454.28
"Period";"true";"45623455454.28"
"Period";"false";45623455450.28
"Period";"true";"45623455450.28"
"Comma";"false";45623455454,28
"Comma";"true";"45623455454,28"
"Comma";"false";45623455450,28
"Comma";"true";"45623455450,28"

是否有人对此有任何见解

如果您的区域设置设置为使用逗号作为“数字分组符号”,则可能会出现此问题。法语使用空格字符进行数字分组,而德语使用句点


Windows-->控制面板-->区域和语言-->数字-->其他设置-->数字分组符号-->设置为使用空格字符

我认为数字分组符号也作为逗号。在欧洲,通常用一个周期(或一个空格)来表示,所以三千二百分之二表示为三千分之22

我将十进制字符改为逗号,将数字分组字符改为句点,并导入123000,Excel将其解释为十二和十分之三,这是应该的


当我将两者都改为逗号时,正如您所看到的,相同的导入给了我十二万三千美元。

您是否研究了提供的其他区域选项?这些可以被明确地指定而不考虑单个机器的区域设置。我需要一个对终端用户有效的应答,而不要求它们跳过HOOPS.FWIW,我会考虑请求用户修改它们的区域设置,以便沿着“通过箍”的方式导入CSV。我建议您花点时间编写一个适当的导入例程,该例程不依赖于“单个机器的区域设置”-。谢谢。你的回答对我的问题起了作用。我正在用法语和德语的默认语言环境进行检查,它似乎也适用于他们。谢谢。你的答案有效。另一个用户击败了你。或者,我相信你。