小编Ram*_*usa的帖子

不允许预设文件导出对象

我有一个carousel文件,我想在其中获取index.js和构建block.build.js,所以我webpack.config.js的:

var config = {
  entry: './index.js',
  output: {
    path: __dirname,
    filename: 'block.build.js',
  },
  devServer: {
    contentBase: './Carousel'
  },
  module : {
    rules : [
      {
        test: /.js$/,
        loader: 'babel-loader',
        exclude: /node_modules/,
        query: {
          presets: ['react', 'es2015'],
          plugins: ['transform-class-properties']
        }
      }
    ]
  }
};
module.exports = config;
Run Code Online (Sandbox Code Playgroud)

package.json下面,我用的是:

{
  "name": "carousel",
  "version": "1.0.0",
  "description": "",
  "main": "webpack.config.js",
  "dependencies": {
    "@babel/core": "^7.0.0-beta.40",
    "babel-cli": "^6.26.0",
    "babel-loader": "^8.0.0-beta.0",
    "babel-plugin-lodash": "^3.3.2",
    "babel-plugin-react-transform": "^3.0.0",
    "babel-preset-react": "^6.24.1",
    "cross-env": …
Run Code Online (Sandbox Code Playgroud)

reactjs webpack babeljs

55
推荐指数
6
解决办法
5万
查看次数

为什么四舍五入浮点数1.4999999999999999会产生2?

我一直在读一本书《编写出色的代码-理解机器》。在关于取整的部分中,它说:

如果小数位的值大于或等于可表示的总十进制值的一半,则数字应四舍五入为最小的较大数字。

意思是:

round(1.5) // equals 2
round(1.49) // equals 1
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用Python时:

x1 = 1.4999  # rounds to 1

x2 = 1.4999999999999999  # rounds to 2

print(round(x1))

print(round(x2))
Run Code Online (Sandbox Code Playgroud)

输出为:

1个

2

我用C#和Swift尝试了同样的事情,并且给出了相同的输出。因此,我认为这是一个与语言无关的话题。

但是为什么会这样呢?

我的假设是浮点单元将多余的位四舍五入,从而在应用程序员的舍入之前将“ 1.49999999999999999999999”转换为“ 1.5”。

python language-agnostic floating-point rounding

4
推荐指数
1
解决办法
93
查看次数