Volume percent calculator
25 mL of solute in 100 mL of solution is 25 % v/v. Enter both volumes in the same unit and get the percent by volume plus the volume fraction, ready for a reagent label or a homework check. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Volume of pure solute
- 25
- Total volume
- 100
- Volume percent
- 25 % v/v
- Volume fraction
- 0.25
- Precision
- 10
This volume percent calculator turns a solute volume and a total solution volume into percent by volume, written % v/v. Volume percent is the classic solution-concentration measure that answers how much of a mixture’s volume is the pure component of interest: for ethanol in water, for acetic acid in vinegar stock, or for any liquid–liquid preparation where both volumes share the same unit. The definition is fully deterministic: volume percent equals one hundred times solute volume divided by total solution volume. Classroom checks include twenty-five millilitres of solute in one hundred millilitres of solution (twenty-five percent v/v) and twelve and a half millilitres in fifty millilitres (also twenty-five percent). The engine uses only finite arithmetic with no network calls, no sampling, and no date-dependent shortcuts.
What volume percent tells you
Percent by volume reports the share of a solution’s total volume that is attributable to a pure solute or to a liquid component being assayed. If V_solute is the volume of that component and V_total is the volume of the finished solution, the volume fraction is V_solute divided by V_total and the volume percent is one hundred times that fraction. Both volumes must be expressed in the same unit—millilitres with millilitres, litres with litres—because the ratio is dimensionless and any unit conversion must happen before you call the calculator.
Students meet the idea when a lab handout labels a reagent as five percent v/v ethanol, when a food-science note lists alcohol content by volume, or when a dilution protocol asks how much pure stock occupies a final flask.
Where volume percent fits in study, lab work, and software
Students use volume percent when a homework set asks for the % v/v of alcohol in a beverage mixture, when they prepare a reagent labeled by volume rather than by mass or moles, or when they check whether a proposed recipe matches a target concentration before lab. Teachers can pre-generate answer keys for modest volume pairs without trusting opaque calculator apps that silently switch units or drop the factor of one hundred.
Lab technicians and quality checks use the same ratio when a certificate lists alcohol by volume and the theoretical mix must be compared against measured flask volumes. Developers call the same contract from scripts to seed deterministic test vectors for chemistry tutors, to normalize user-entered volumes before a lab notebook export, or to satisfy programming-challenge statements that demand percent by volume rather than a hand-waved sketch.
What you can do with it
Homework and worksheet keys
Compute % v/v from textbook solute and solution volumes before grading ethanol, acid, or mix problems.
Lab prep and tutoring software
Normalize user-entered volumes into percent by volume for interactive lessons and recipe checks.
FAQ
What does the volume percent calculator cost?
It is free in your browser on this page.
How is volume percent defined?
The volume fraction is V_solute / V_total without the factor of one hundred.
What happens if total volume is zero?
Zero total volume makes percent by volume undefined (division by zero).
Do the volumes need to be in litres?
No. Any consistent unit works (mL with mL, L with L, and so on). The calculator does not convert units for you.
Is this the same as mass percent composition?
No. Mass percent composition is from a chemical formula and atomic weights. Volume percent is a ratio of two volumes for a liquid mixture.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/chem/volume-percent \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"solute_volume":25,"total_volume":100}'const res = await fetch("https://api.kit.forhosting.com/chem/volume-percent", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"solute_volume": 25,
"total_volume": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/chem/volume-percent",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"solute_volume": 25,
"total_volume": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/chem/volume-percent", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"solute_volume":25,"total_volume":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"solute_volume":25,"total_volume":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/chem/volume-percent", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"solute_volume": 25,
"total_volume": 100
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "chem.volume_percent",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_abs_value | 1000000000000000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
What volume percent means and what the response contains
This calculator returns the normalized solute_volume and total_volume, the volume_percent result, the underlying volume_fraction between zero and one (or above one if the inputs are non-physical but still positive), the precision used, the method tag volume_percent, a short formula string, and a unit hint of percent v/v. There is no approximate CAS path and no live unit conversion: the engine either divides two finite numbers and scales by one hundred or rejects the input with invalid_input. Rejected cases include a missing solute or total volume, non-finite values, magnitudes above the documented ceiling, a negative solute volume, and any total volume that is zero or negative, because division by zero or a non-physical solution volume is undefined.
How volumes are read and how % v/v stays reproducible
Optional leading plus signs and scientific notation on numeric strings are allowed when they parse as finite decimals; embedded spaces, hex prefixes, and non-numeric tokens are rejected with a clear message so a bad cell does not become a wrong percentage. Zero solute volume is valid and yields zero percent by volume. Negative solute volume is also rejected as non-physical for this definition. The preferred fields are solute_volume for the component volume and total_volume for the finished solution volume, but aliases V_solute, solute, solute_vol, Vs, and v_solute for the solute, and V_total, V_solution, solution_volume, total, Vt, v_total, and volume for the total, are accepted so spreadsheets, query strings, and typed forms can reuse the same contract. Zero total volume is not: the request fails with invalid_input because percent by volume is undefined when the denominator vanishes. An optional precision field, with aliases decimals and dp, chooses how many decimal places to expose for the returned volumes, percent, and fraction, defaulting to ten and capped at fifteen so JSON goldens stay stable. Pair the free browser run on this page with the priced API when you need the identical mathematical result inside an automated pipeline without re-implementing the volume-percent formula yourself.
Where volume percent fits in study, lab work, and software
Product and education tools use the endpoint when a learner types two volumes and the UI must show a clear % v/v result with the volume fraction for optional follow-on math. On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split — free interactive exploration and a priced, identical API — matches the rest of the KIT tier-A catalog and lets you move from a classroom demo to an automated pipeline without changing the mathematical result. Pair it with molar concentration or percent composition helpers when you need related solution quantities, and with other science endpoints when you are building a small lab of free, deterministic chemistry calculators.
Integration use cases
Deterministic test fixtures
Generate reproducible volume_percent and volume_fraction values for unit tests, tutors, and CI assertions.