我目前正在为Angular 4应用制作货币格式化指令。在解析上除去数字和小数以外的所有内容,最后得到一个字符串浮点数,但我需要它作为一个浮点数返回,所以我可以用它做数学。
Invalid input 'm': expected 'n/N' (line 1, column 2 (offset: 1))
"import-graphml"
答案 0 :(得分:2)
这两行:
# install package from CRAN
# but specify the library director
# the download method
# and the configuration arguments
# to allow for source installs
install.packages( pkgs = "rgdal"
, lib = "./R_Packages"
, method = "curl"
, configure.args = c(
"--with-gdal-config=/Library/Frameworks/GDAL.framework/Programs/gdal-config"
, "--with-proj-include=/p/home/bin/proj4/include"
, "--with-proj-lib=/p/home/bin/proj4/lib"
)
)
是问题所在。在未明确声明变量时,Typescript非常适合推断变量的类型。在这种情况下,因为您为let result = `${integer}${fraction}`;
result = parseFloat(result);
分配了一个字符串,所以typescript会将其类型推断为字符串。要解决此问题,您有两种选择。首先,显式声明该变量的类型,以便它允许字符串和数字:
result
或者您可以将解析后的数字分配给新变量,而不是重用let result: string|number = `${integer}${fraction}`;
result = parseFloat(result); // now should be ok.
变量:
result
答案 1 :(得分:0)
有一个明显的错误,您正在尝试为字符串变量分配一个数字,无需再次解析为Float,只需通过解析它来返回该数字
let result = `${integer}${fraction}`;
// at this point result = "100.55";
return parseFloat(result);
答案 2 :(得分:0)
您无法在Typescript中为变量分配不同的类型。如果您使用string
初始化变量,则必须保留string
。
let result = `${integer}${fraction}`;
let resultAsNumber = parseFloat(result);
return resultAsNumber
这是错误的常见原因,类型系统试图阻止您这样做。