2

我可以知道使用百分比符号将列值四舍五入为 2 个小数点的函数是什么?例如:1.88% 而不是 1.88230293

$worksheet_details->setCellValue("D14", "=SUM((F33 / F34))");

如何对单元格 D14 中的值进行四舍五入?


解决方案:

顺便说一句,在我继续从互联网上寻找解决方案之后,我得到了这个......

$percentageFormat = '#.## \%;[Red]-#.## \%';
$worksheet_details->setCellValue("C14", "=SUM((C33 / C34) * 100)");
$worksheet_details->getStyle('C14')->getNumberFormat()->setFormatCode($percentageFormat);

如果您希望它以 0.xx 格式显示,只需将第一个 # 更改为 0 ...否则它将仅显示 .xx

4

6 回答 6

4

如果您只想将其作为字符串输出:

echo '%'.number_format($your_number,2);

如果要将其保留为数字浮点值(但要在百分比上妥协):

echo round($your_number,2);

如果您正在寻找 Excel 函数,请使用:

$worksheet_details->setCellValue('D14', '=TEXT(F33/F34,"0.00%")');
于 2012-04-04T01:39:42.860 回答
2

我猜你正在寻找ROUND()功能:

=ROUND(10/3; 2)

或者,在您的情况下:

$worksheet_details->setCellValue("D14", "=ROUND(SUM((F33 / F34)); 2)");
于 2012-04-04T01:55:56.133 回答
1

如果您打算在 PHP 中进行舍入,则可以使用round()指定浮点数的精度:

echo round(1.95583, 2) . "%";  // 1.96%

如果您要在 Excel 中舍入,可以使用ROUND 函数

$worksheet_details->setCellValue("D14", "=TEXT(SUM((F33 / F34)), '###.##%')");

或者

$worksheet_details->setCellValue("D14", "=TEXT(SUM((F33 / F34)/100), '###.##%')");

如果这个数字已经是一个百分比。

希望能帮助到你。

于 2012-04-04T01:42:08.183 回答
0

如果你想以百分比数字格式显示,你可以试试这个。

$percentVal = '95.6';

PHPExcel_Cell::setValueBinder( new PHPExcel_Cell_AdvancedValueBinder() );


$percentCell->setValue($percentVal . '%');
$sheet->getStyleByColumnAndRow($percentCellIndex, $dataRow)->getNumberFormat()->setFormatCode('0.0%');

// 输出 95.6% 并在 Excel 中格式化为数字

于 2013-07-10T08:55:40.120 回答
0

正如@ariefbayu 所说,

$worksheet_details->setCellValue("D14", "=ROUND(SUM((F33 / F34)); 2)");

应该可以工作,但对我来说它抛出了错误:

PHP Fatal error:  Uncaught PHPExcel_Calculation_Exception

所以我换了;一个,

结果:

$worksheet_details->setCellValue("D14", "=ROUND(SUM((F33 / F34)), 2)");
于 2019-10-18T14:21:54.540 回答
0

您可以将单元格的格式设置为自动将值四舍五入为整数。

$activeSheet->getStyle("A1")->getNumberFormat()->setFormatCode('##');
于 2021-06-12T20:59:41.890 回答