为什么Excel会将具有两个以上小数位数的数字解析为整数?

时间:2015-08-07 21:47:05

标签: excel csv localization decimal

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

我已将本地Windows区域设置设置为使用半冒号和逗号作为小数分隔符。当我在Excel中打开以下测试文件时,Excel会根据我的区域设置正确地解析具有2个或更少十进制字符的数字。但是,具有3个或更多小数位的数字将被解析为整数。因此,字符串12,3000将被解析为123 000(一万二千三百)。

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"

有没有人对此有任何见解

2 个答案:

答案 0 :(得分:1)

我在想你的数字分组符号也是逗号。这通常由欧洲的一个时期(或一个空间)表示,因此将表示 3.000,22 的三千二百二十二。

我将十进制字符更改为逗号,将数字分组字符更改为句点,并导入 12,3000 ,Excel将其解释为十二和三十分​​之一。

当我把两者改为逗号时,正如你所见,同样的导入给了我一万二千三千个。

答案 1 :(得分:0)

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

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