千位欧美十进制格式

Posted

技术标签:

【中文标题】千位欧美十进制格式【英文标题】:European and American decimal format for thousands 【发布时间】:2014-05-08 09:50:31 【问题描述】:

我正在阅读 csv,但我对美国和欧洲的数字格式有疑问。美国有. 表示小数,欧洲有数千。这是读取 csv 例程。

read.csv("data.csv",header=F,skip=4, sep=";", fileEncoding= "cp1252")

问题是当我有一个以 0 结尾的数字时,没有小数。

> 2.100 
[1] 2.1

想象一下:

> 2.113
[1] 2.113

我用. 替换了空白,我有一个欧洲号码,但在另一种情况下,我有 21 个。

我也尝试了一些更改,但我有一些带有, 的数字,我尝试使用十进制但它不起作用。

编辑:

什么到达df。

2.100 21.882,30

gsub("\.", "", 数字); gsub("\,", ".", 数字);

我做了一些转换,之后:

2.100 21882.30

R 认为它是 2,1 但它是 2100,read.csv2 不起作用。

【问题讨论】:

read.csv 用于美式 CSV 文件。 read.csv2 用于欧式 CSV 文件。它可能会解决您的问题。 【参考方案1】:

您也可以使用dec 来指定您想要的小数位符号。例如,如果小数点符号是.

read.csv("data.csv",header=F,skip=4, sep=";", fileEncoding= "cp1252",  dec = ".")

【讨论】:

以上是关于千位欧美十进制格式的主要内容,如果未能解决你的问题,请参考以下文章

在Textview中显示千位分隔符和十进制格式的数字

使用 ToString() 格式化十进制值以将逗号作为千位分隔符,其中小数位数未知

mySQL格式数字输出,千位分隔符

C# 将字符串转换为双精度/十进制并返回字符串,保留尾随零,为千位添加逗号

十进制字符串与千位分隔符?

解析存储为文本的数字,逗号为十进制,点为千位